# Python BytesIO

# BytesIO是Python的内置类，它可以用来操作二进制数据流。
# BytesIO实现了在内存中读写bytes，可以从一个bytes对象中读取数据，
# 或者把数据写入到一个bytes对象中。

# BytesIO的主要方法有：
# - getvalue()：获取写入到BytesIO中的所有数据。
# - write(bytes)：向BytesIO中写入bytes。
# - read(n)：从BytesIO中读取n个bytes。
# - seek(offset, whence=0)：设置当前位置。
# - tell()：获取当前位置。

# 实例：
from io import BytesIO
# 创建BytesIO对象
f = BytesIO()
# 写入数据
f.write(b'hello')
f.write(b' ')
f.write(b'world')
# 读取数据
print(f.getvalue())  # b'hello world'


# 实例2：
from io import BytesIO
# 创建BytesIO对象
f = BytesIO(b'hello world')
# 读取数据
print(f.read(5))  # b'hello'
print(f.tell())  # 5
print(f.read(6))  # b' world'
print(f.tell())  # 11


# 实例3：
from io import BytesIO
# 创建BytesIO对象
f = BytesIO()
# 写入数据
f.write(b'hello')
f.write(b' ')
f.write(b'world')
# 读取数据
print(f.getvalue())  # b'hello world'
# 重新设置当前位置
f.seek(6)
# 读取数据
print(f.read(5))  # b'world'


# 实例4：
bytes_io = BytesIO()
# 将字符串以UTF-8编码写入BytesIO对象
bytes_io.write("风清影竹".encode('utf-8'))
# 获取二进制数据
print(bytes_io.getvalue())
# 将二进制数据以UTF-8解码
print(bytes_io.getvalue().decode('utf-8'))